﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Chilis.CRM.TransferObjects;
using System.Data.SqlClient;
using System.Data;

namespace Chilis.CRM.DataAccess
{
    public class DClaseComentario : Conexion
    {
        static DClaseComentario()
        {
        }
        private DClaseComentario()
        {
        }

        private static DClaseComentario _instancia = new DClaseComentario();
        public static DClaseComentario Instancia
        {
            get { return _instancia; }
        }

        #region Helper Tipo Publicacion

        private ClaseComentario CreaClaseComentario(DataRow fila)
        {
            var publicacion = new ClaseComentario();

            publicacion.IdClaseComentario = fila.Field<int>("IdClaseComentario");
            publicacion.Descripcion = fila.Field<string>("Descripcion");


            return publicacion;
        }

        private IList<ClaseComentario> CreaClaseComentario(DataTable tabla)
        {
            var lista = new List<ClaseComentario>();

            foreach (DataRow fila in tabla.Rows)
            {
                lista.Add(CreaClaseComentario(fila));
            }

            return lista;
        }

        #endregion

        public IList<ClaseComentario> ListarClaseComentario()
        {

            string qry = "usp_ListarClaseComentario";

            var db = CrearBaseDatos();
            var ds = db.ExecuteDataSet(qry);


            return CreaClaseComentario(ds.Tables[0]);

        }

        public ClaseComentario ObtenerClaseComentario(int idClaseComentario)
        {

            string qry = "usp_ObtenerClaseComentario";

            var db = CrearBaseDatos();
            var ds = db.ExecuteDataSet(qry, idClaseComentario);


            return CreaClaseComentario(ds.Tables[0].Rows[0]);

        }

        public int ActualizarClaseComentario(ClaseComentario tipoPublicacion)
        {
            string qry = "usp_ActualizarClaseComentario";

            var db = CrearBaseDatos();
            var objeto = db.ExecuteNonQuery(qry,
                tipoPublicacion.IdClaseComentario,
                tipoPublicacion.Descripcion
                );

            return (int)objeto;
        }

        public int RegistrarClaseComentario(ClaseComentario tipoPublicacion)
        {
            string qry = "usp_RegistrarClaseComentario";

            var db = CrearBaseDatos();
            var objeto = db.ExecuteNonQuery(qry,
                tipoPublicacion.Descripcion
                );

            return (int)objeto;
        }

        public int EliminarClaseComentario(int idClaseComentario)
        {
            string qry = "usp_EliminarClaseComentario";

            var db = CrearBaseDatos();
            var objeto = db.ExecuteNonQuery(qry,
                idClaseComentario
                );

            return (int)objeto;
        }


    }
}
